FIG. 1 shows elements of a typical computer or computer system 10 that are pertinent to the invention disclosed herein. Computer 10 comprises a data processor 12 and some form of mass storage 16 such as a readable and writable magnetic hard disk drive. An operating system executes on data processor 12. The invention will be described in the context of a computer running a Windows.RTM. operating system such as available from Microsoft.RTM. Corporation of Redmond, Wash. The operating system has components, referred to as drivers, for interacting with various computer hardware elements.
Computer 12 includes multimedia components for playing or rendering continuous media content. Audio and video are two examples of continuous media content. In the computer environment described herein, the continuous media content comprises digitized audio stored on a compact optical disk 20, also referred to as a CD or CD-ROM. A CD is a nonmagnetic, polished metal disk with a protective plastic coating, used to store digital information. The disk is read by an optical scanning mechanism that uses a high-intensity light source, such as a laser, and mirrors.
CDs were originally developed and used to store audio performances or other consumer-oriented audio content. This is still one of their primary uses. In this context, a CD is not necessarily thought of as a computer storage device, but rather as a convenient way to distribute and collect audio entertainment content. CD audio players exist, for use in conjunction with home audio systems, to play the audio content of CDs.
Audio content is conventionally organized on a CD as a number of performance tracks. Each performance track typically corresponds to a single song or some other identifiable segment of a performance. With most CD audio players, a listener can select any one of the tracks for playback, and can even move to a specific point or offset within a track.
The audio content of a CD is stored in a digital format. Each track consists of a continuous series or stream of digitized audio samples. A CD player reads these samples and converts them to an audio signal using digital-to-analog conversion techniques.
CDs can also be used for storing arbitrary, non-audio data for used by a computer. When such data is included on a CD, it conventionally occupies the first track of the CD--the audio information of this track is replaced with the non-audio data. Such a CD can also have other tracks containing conventional audio data.
The standard format of track-oriented, digitized data on a conventional CD is referred to as the "Redbook" format. The computer of FIG. 1 has hardware and software components for playing conventional CD audio that is in the Redbook format, referred to herein as "Redbook audio."
Computer 10 includes a CD player or drive 22 which accepts CD 20. CD drive 22 is capable of functioning similarly to a conventional audio CD player (such as one that might be used in conjunction with a home audio system) except that it functions in response to electronic controls issued by a computer rather than to front-panel controls operated by a listener. CD drive 22 includes optical elements for reading the Redbook audio data recorded on CD 20, and also includes digital-to-analog components for converting such data to an analog signal. This analog signal is connected to an amplifier 24 within computer 10 and from there to a speaker 26.
Computer 10 also includes components for rendering digitized audio from sources other than a CD, such as from magnetic mass storage 16. Specifically, computer 10 has a sound board 30 which performs digital-to-analog conversion. Digitized data can be read from storage device 16 and written to sound board 30 for rendering. Sound board 30 supplies an analog signal to amplifier 24, which is in turn connected to speaker 26 as already described. In practice, amplifier 24 is typically integrated on sound board 30.
The Windows.RTM. operating system has drivers for allowing an application program, such as application program 28, to render or play different types of audio. These drivers, which utilize other, low-level functions provided by the Windows.RTM. operating system, are part of the Windows.RTM. Media Control Interface (MCI). MCI provides applications written for Microsoft Windows.RTM. with device-independent capabilities for controlling media devices such as audio hardware, videodisc players, and animation players. More specifically, MCI provides device-independent, extensible interfaces for controlling virtually any type of media device.
The MCI interfaces provide a generic core set of commands to control different types of media devices. For example, MCI uses the same command to begin playback of an audio file, a videodisc track, and an animation sequence.
MCI devices and their drivers are classified as either simple devices and device drivers or compound devices and device drivers. Simple devices do not require a data file to be specified for playback. A CD audio player used for playback of Redbook audio is an example of a simple device. When instructed to begin playback of Redbook audio, a CD audio player simply plays whatever CD is currently inserted.
A driver associated with a simple device is not generally required to deal with actual digitized data--the data is both read and rendered by the rendering device itself. A CD audio player, for example, has integrated components for both reading data directly from a CD, and converting the data to an analog signal. A simple device driver associated with a CD player does not need to actually access the data to render it. The MCI interface has commands for playing Redbook data from CDs in this manner.
Compound devices require a data file specification for playback. The data file associated with a compound device is know as a device element. A driver associated with a compound device is often required to process digitized data. Such a driver is generally responsible for reading the data from a storage device and passing the data to a rendering device.
A WAVE file is an example of an audio file formatted for used with a compound device. A WAVE file typically has a filename extension consisting of the letters "WAV". For example, "JINGLE.WAV" would be a WAVE file in the Windows.RTM. environment. The MCI interface has commands for playing WAVE files.
FIG. 1 shows a simple MCI device driver 32 that is associated with CD drive 22 for playing or rendering CD 20. To play CD 22, application program 28 issues appropriate MCI commands. To open a simple device such as CD drive 22, the application specifies the name of the device. To play a portion of the CD, application program 28 specifies timing information relative to whatever CD is in drive 22. For CDs, the MCI drivers expect such timing information in terms of track, minute, second, and frame parameters.
FIG. 1 also shows a compound device driver 34 for playing WAVE files. Such WAVE files are stored on magnetic mass storage medium 16 or on some other logically-addressed drive such as a network drive. To play a WAVE file, application program 28 identifies both a rendering device and a file specification. The compound MCI driver uses this information to stream the file content from the designated file to the rendering device and to thus render the data.
Popular multimedia application programs frequently make use of CDs for digitized audio and video content. In many cases, an application is associated with a particular CD, and that CD must be present in the user's CD drive for the application to operate correctly. The application makes use of different types of information on the CD, such as WAVE files and Redbook audio.
For rendering Redbook audio, the application program is configured to utilize a default device driver. This driver is specified by the name cdaudio in the Windows.RTM. MCI environment. To play Redbook audio from a CD, the application program issues an MCI command to open the cdaudio device. To play certain segments of the CD, the application issues further MCI commands that specify starting points and ending points in terms of performance track information.
Most application programs such as this are permanently configured to use the default cdaudio simple device driver. This is fine in many situations, but is somewhat restricting in other environments. In some cases, for instance, a user might want the application program to use audio data from a hard disk rather than from a CD. With the increasing use of networks, including the Internet and similar distribution systems, it is expected that many users will not even have CD drives on their computers. In such systems, and even in systems having CD drives, it might be desirable to distribute existing application programs from a network and to allow users to execute the application programs without a CD drive. This is not possible with existing application programs that are hard-coded to use a local CD drive.